Онлайн-справочник по самым часто задаваемым вопросам из темы "Как сделать?" на форуме QSP.su

< Назад, к странице 162
Вперёд, к странице 164 >

22. Вопросы о Quest Navigator (v.0.0.28)

22.5. Скопировал шаблон оформления в папку со своей игрой, но что с ним теперь делать?

В: Скопировал шаблон оформления в папку со своей игрой, но что с ним теперь делать? Не пойму, что за что отвечает.

О:

!!! Ниже "Quest Navigator" называется просто Навигатором. Редактировать будем шаблон "default", предварительно скопированный в папку с игрой. Под словом "окно" далее понимается то, что понималось под словом окно в Классическом плеере, то есть визуальные блоки основного и дополнительного описаний, предметов и действий, а так же строка ввода. Непосредственно окно плеера, чтобы не путаться, будем называть страницей по аналогии со страницей в браузере.

Чтобы отредактировать оформление игры, вам потребуется переработать два основных файла шаблона:

Давайте пробежимся по ключевым моментам, чтобы понять, что к чему.

Во-первых, чтобы наглядно видеть, где что располагается в вашем шаблоне, откройте в Quest Navigator такую игру, в которой есть вывод во все четыре окна: основного, дополнительного описаний, в окно предметов и в окно действий. Ещё не мешало бы, чтобы в этой игре можно было вызывать различные диалоговые окна, вроде пользовательского меню, окон msg, $input и других.

Откройте "gameAwesomium.html" в любом текстовом редакторе, а лучше в редакторе с подсветкой кода, например в SublimeText.

HEAD

Подключение CSS

В блоке "<head>...</head>" вы увидите вот такую строку:

    <link type="text/css" href="skins/game.css" rel="stylesheet" />

Как вы понимаете, это ссылка на таблицу стилей, которая используется в вашей игре. Вы можете добавить собственные файлы ".css", разместив их в той же папке "skins", например, или в любой другой папке на одном уровне с "gameAwesomium.html" или ниже, и прописать подобную ссылку на таблицу стилей. Например, я создал папку "avscss" и разместил в ней файл собственных стилей "coolstyle.css", значит мне нужно прописать в блоке "<head> ... </head>" такую строчку:

    <link type="text/css" href="avscss/coolstyle.css" rel="stylesheet" />

Вы можете (и будете) свободно редактировать файл "skins/game.css", вносить свои стили в него, это никак не запрещается.

Подключение скриптов

Далее идут строки, подгружающие JavaScript-файлы:

    <script type="text/javascript" src="../qsplib/js/core.js"></script>
    <script type="text/javascript" src="../qsplib/js/coreAwesomium.js"></script>
    <script type="text/javascript" src="../qsplib/js/QspLibAwesomium.js"></script>
    <script type="text/javascript" src="../qsplib/js/api.js"></script>
    <script type="text/javascript" src="../standalone_content/skins/js/game.js"></script>

Не изменяйте и не удаляйте данные строки, если не знаете в точности, что за что отвечает. Так же не меняйте порядок строк, ведь скрипты выполняются последовательно.

Чтобы добавить собственный файл скриптов, разместите его рядом с файлом "gameAwesomium.html" или во вложенной папке, и пропишите относительный путь в подобной строке. Например, я создал папку "avsscripts" и поместил в неё файл "alert.js", значит мне нужно добавить к строкам выше такую строку:

    <script type="text/javascript" src="avsscripts/alert.js"></script>

Сейчас мы не будем править скрипты, или писать свои. Приведённая информация только для ознакомления. Если вы не знакомы с JavaScript, пока эту часть лучше не трогать.

BODY

Переходим к блоку "<body>...</body>". Для этого блока в "skins/game.css" определены следующие настройки:

    html, body height: 100%; margin: 0px; padding: 0px; }

Данную строку лучше не менять, иначе при вёрстке у вас могут возникнуть проблемы с расположением остальных блоков. А вот строку:

    body margin:0;    padding:0; }

ниже по коду "skins/game.css" можно удалить, так как она частично дублирует предыдущую.

В блоке "<body>...</body>" находится множество блоков div, которые и отвечают за отрисовывание всего оформления игры. Далее вместо того, чтобы произносить целиком "div с id (айди) skin-splashscreen-foreground", мы будем говорить просто "блок skin-splashscreen-foreground", и тому подобное. Поскольку вся оставшаяся часть HTML-кода состоит из блоков div, и так будет понятно, что мы говорим о блоках div.

skin-splashscreen-foreground

Два основных блока в "body" это "skin-splashscreen-foreground" и "skin-ui-wrapper". И для обоих основные стили прописаны непосредственно в "gameAwesomium.html". Это сделано для того, чтобы данные блоки отображались адекватно стилям ещё при загрузке страницы, даже если "skins/game.css" ещё не загрузился.

Если запустить игру в Навигаторе, мы увидим "skin-splashscreen-foreground" на короткое время в виде простого белого экрана, затем он "погаснет", а вместо него отобразится блок "skin-ui-wrapper". Эти два основных блока рекомендую сохранить, они сменяют друг-друга (это происходит за счёт скриптов), создавая привлекательный переход, к тому же "skin-ui-wrapper" содержит все остальные блоки оформления.

Непосредственно внутри блока "skin-splashscreen-foreground" вы можете разместить логотип или приветственную надпись, которые появятся на короткое время, сменившись экраном игры. (Рекомендую оставлять основной фон сплэшскрина белым)

skin-ui-wrapper

skin-back1

Далее мы будем рассматривать содержимое блока "skin-ui-wrapper". И первый блок, который нам тут встречается, это блок "skin-back1". Он пустой и служит для того, чтобы задавать затенение по краям страницы (а строго говоря он задаёт фон страницы). Все его стили задаются в "skins/game.css", таким образом вы легко можете отредактировать стилистику этого блока, чтобы задать собственную рамку по краям окна, или создать какой либо эффект на фоне, ну или просто удалите этот блок, если подобные эффекты вам не нужны. Удаление блока "skin-back1" не повлияет на работоспособность игры.

skin-page

Следующий блок — это блок "skin-page". Собственно это вся страница целиком, где размещены блоки окон основного, дополнительного описаний, окна предметов, действий и строки ввода. Нет явных скриптов, которые работают с блоком "skin-page", однако удалять его не рекомендуется. Особенностью данного блока является то, что он перекрывает собой блок "skin-back1" (оно и понятно, ведь для отрисовки фона страницы используется именно "skin-back1"). Поэтому, если вы стилизуете "skin-page" каким-нибудь фоном, этот фон перекроет видимость блока "skin-back1".

skin-back2

В "skin-page" находится следующий блок, который мы рассмотрим, это блок "skin-back2". Это блок так называемого вторичного фона. Он снова растянут по всей ширине и высоте блока "skin-page", поэтому если поставить ему на фон сплошной цвет, это скроет видимость блока "skin-back1". Блок "skin-back2" нужен, чтобы отрисовать вертикальные полоски по краям окна в шаблоне "default". Если вы просто уберёте этот блок, функциональность игры не пострадает.

skin-top-menu-wrapper

Следующий за "skin-back2" блок — это блок "skin-top-menu-wrapper", который отвечает за включение верхнего меню. Верхнее меню — это полоска с кнопками управления игрой и включения/выключения звука. Эта полоска появляется в двух случаях:

Само собой вы можете написать общий стиль для обоих вариантов отображения.

Блок "skin-top-menu-wrapper" выводится со свойством "display:table;", а вложенные блоки соответсвенно со свойствами "display:table-row;" и "display:table-cell;". Это сделано для того, чтобы обеспечить соответствующее выравнивание элементов внутри блоков.

skin-top-menu-row, skin-user1, skin-user2

Вложенный блок "skin-top-menu-row" нужен исключительно для того, чтобы создать аналог табличной строки, хотя и его вы можете стилизовать.

Блоки "skin-user1" и "skin-user2" играют роль ячеек таблицы и в "skins/game.css" стилизованы по минимуму.

skin-user1-inner, skin-inv-toggle, skin-inv-caption

Блок "skin-user1-inner" служит контейнером для двух нижележащих блоков, обёрнутых в одну гиперссылку. Вспомогательный блок для размещения вложенных блоков в одну линию.

Нижележащие блоки, обёрнутые в ссылку — это блоки "skin-inv-toggle" и "skin-inv-caption", они располагаются в одну линию благодаря свойству "dysplay:inline-block;". При щелчке по любому из этих блоков выполняется JavaScript из гиперссылки:

    skinToggleInv();

Данную функцию вы можете найти в файле "skins/js/game.js", она отвечает за плавное появление и пропадание окна с предметами, когда мы щёлкаем по слову инвентарь. Само собой размер страницы должен быть 480px и меньше.

skin-user-system, skin-user-music

В блоке "skin-user2" располагаются два блока "skin-user-system" и "skin-user-music", которые соответственно отвечают за отображение кнопок "управление игрой" ("меню плеера") и "управление музыкой". Блок "skin-user2" отображается даже когда страница больше 480 пикселей шириной. Если удалить этот блок, оставив только кнопки, кнопки сместятся в правый верхний угол и "провалятся" под слой, станут некликабельными, пока размер страницы превышает 480 пикселей.

skin-right-column

Блок "skin-right-column" занимает 30% от ширины страницы с правой стороны (при ширине страницы больше 480 пикселей). В этом блоке размещается окно предметов, а так же блок "skin-user2" (внизу), когда ширина страницы больше 480 пикселей.

skin-right-column-background

В блоке "skin-right-column", по аналогии со "skin-page", находится блок, создающий фон под блоком окна предметов, это блок "skin-right-column-background". Он отображается только при ширине страницы более 480 пикселей и включённом окне предметов.

qsp-wrapper-objs

Следующий блок "qsp-wrapper-objs" является уже непосредственно блоком окна предметов. Он отображается и при ширине окна 480 пикселей, и выше, только меняет своё местоположение. Этот блок связан с различными скриптами, которые создают полосу прокрутки в окне предметов.

qsp-scroller-objs, skin-inv-wrapper, skin-inv-top, qsp-inv

Блок "qsp-scroller-objs" вложен в предыдущий и технически нужен для создания полосы прокрутки в окне предметов. Этот блок связан со скриптами полосы прокрутки. Следующий блок — блок "skin-inv-wrapper" — отвечает как раз за отображение предметов при изменении расширения. Именно с этим блоком работает скрипт, когда страница меньше 481 пикселя шириной, и мы щёлкаем по кнопке "Инвентарь".

В "skin-inv-wrapper" вложены два блока. "skin-inv-top" — декоративный блок, разграничивающий кнопку инвентаря и окно предметов при ширине страницы меньше 481 пикселя. А вот "qsp-inv" — очень важный блок. Именно в этот блок, при его наличии, Quest Navigator отправляет список предметов. Если вы планируете использовать окно предметов, удалять этот блок нельзя, а лучше сохранить все блоки вложенные в "qsp-wrapper-objs".

skin-left-column

Блок "skin-right-column" занимает 70% от ширины страницы с левой стороны (при ширине страницы больше 480 пикселей). В этом блоке размещаются: окно дополнительного описания, окно основного описания и окно действий. А так же разные вспомогательные блоки.

skin-inv-bottom

Блок "skin-inv-bottom" — декоративный блок, нижняя горизонтальная полоска инвентаря, когда ширина страницы не превышает 480 пикселей. Эта полоска видна и когда инвентарь раскрыт, и когда он свёрнут.

skin-wrapper-main-outer, qsp-wrapper-main, qsp-scroller-main

Блок "skin-wrapper-main-outer" является внешним контейнером для блоков всех окон (дополнительного и основного описания и действий). В него вложены блоки "qsp-wrapper-main" и "qsp-scroller-main", на основе которых построен скрипт, иммитирующий ios-подобный скроллбар.

А уже здесь размещены блоки:

qsp-view

"qsp-view" — отвечает за отображение окна предпросмотра (оператор view). [С этим блоком работают скрипты в api.js, однако его удаление не меняет функциональности оператора view.]

qsp-vars

"qsp-vars" — отвечает за отображение окна дополнительного описания. В дефолтном шаблоне это окно отображается выше окна основного описания

qsp-main

"qsp-main" — отвечает за отображение окна основного описания. Этот блок нельзя удалять, однако вы можете вполне свободно стилизовать и настраивать его.

qsp-acts

"qsp-acts" — отвечает за отображение окна действий.

qsp-input-line

Блок "qsp-input-line", а так же вложенные в него блоки, нужны для отображения и стилизации строки ввода, реализованной через поле "<input>".

Диалоговые окна

Блоки диалоговых окон располагаются ниже блока "skin-page", чтобы при выведении на экран блоки диалоговых окон перекрывали блок "skin-page". Структура у всех диалоговых окон похожа, поэтому мы не будем подробно разбирать эти блоки.

qsp-dialog-msg

Блок "qsp-dialog-msg" служит для вывода на экран диалогового окна при выполнении оператора msg.

qsp-dialog-input

Блок "qsp-dialog-input" служит для вывода на экран диалогового окна с полем ввода при выполнении функции $input.

qsp-dialog-system-menu

Блок "qsp-dialog-system-menu" служит для вывода на экран диалогового окна меню управления игрой. Это пункты "Загрузить|Сохранить|Заново|Другие игры".

qsp-dialog-save-slots

Блок "qsp-dialog-save-slots" служит для вывода диалогового окна со слотами сохранения.

qsp-dialog-user-menu

Блок "qsp-dialog-user-menu" отвечает за вывод всплывающего меню при выполнении оператора menu.

qsp-dialog-view

Блок "qsp-dialog-view" отвечает за вывод блока с изображением (оператор view).

qsp-dialog-error

Блок "qsp-dialog-error" отвечает за вывод сообщений об ошибках в коде QSP.

P.S.

Такова в общих чертах структура шаблона "default". О том, как поставить шаблон оформления на свою игру читайте в соответствующем разделе "шаблоны оформления для игр".

Вы можете перерабатывать и стилизовать шаблон по своему желанию и усмотрению, но делайте это постепенно, тестируя каждый изменённый кусочек. Я по очереди отключал и стилизовал блоки, когда подгонял шаблон для нужд "Вереницы миров", пока не добился нужного поведения. Необходимо учитывать поведение шаблона вместе со скриптами.

Так же вы можете перенести частично блоки из шаблона в код QSP. Их само собой можно будет выводить либо в основном либо в дополнительном описании, и вести себя они будут несколько иначе, чем если прописаны заранее в шаблоне, однако и так делать можно. Можно в принципе отказаться от всех окон, кроме окна основного описания, растянуть это окно на всю ширину страницы, и прямо из кода QSP формировать собственную разметку, причём эта разметка может всякий раз отличаться.

Возможностей море, если вы хорошо владеете HTML и CSS. Работа с JavaScript вам понадобится только тогда, когда вы захотите навешать на игру дополнительные функции, например различные горячие клавиши, управление с клавиатуры в принципе, анимации и т.д.

Quest Navigator в отличие от Классического плеера позволяет делать адаптивную вёрстку, то есть вёрстку подстраивающуюся под конкретное окно, а значит вы можете написать именно такую вёрстку, какая вам нужна и не беспокоиться о возможных отличиях в размере дисплеев, окон и т.д.

< Назад, к странице 162
Вперёд, к странице 164 >

Aleks Versus'HowDo-F.A.Q.'2021-2022

Aleks Versus'Game Adventure Making'Really Unimaginable Stories'2013-2022

 

Содержание

1. В чём разница?

1.1. В чём разница между set x=10, let x=10 и x=10?

1.2. В чём разница между переменной со знаком $ и без знака $?

1.3. В чём разница между ' ' (апострофы) и " " (кавычки)?

1.4. В чём разница между *pl "строка" и просто " строка" ?

1.5. Чем отличаются эти две команды? *pl "<<$perem>>" и *pl $perem

1.6. В чём разница между dynamic и dyneval?

1.7. В чём разница между gt и goto?

1.8. Чем отличается goto от gosub?

18.1. Чем отличаются команды addqst и openqst?

Источники и дополнительные материалы

2. Вопросы о $COUNTER

2.1. Как сделать, чтобы значение переменной изменялось с течением времени?

2.2. Как сделать, чтобы из одной локации меня через пару секунд перебрасывало в другую локацию?

2.3. Как сделать, чтобы через пару секунд после входа на локацию появлялось новое действие?

2.4. Как сделать, чтобы цикл выполнялся параллельно остальному коду, а не прерывал его?

Источники и дополнительные материалы

3. Вопросы о MSG и $INPUT

3.1. Как вывести на экран отдельное окошко с текстом? | Подскажите аналог команды alert в QSP.

3.2. Как вывести на экран окошко, в котором игрок должен ввести текст? | Подскажите аналог команды prompt в QSP.

3.3. Как прикрутить возможность выбора варианта к окну msg? | Подскажите аналог команды confirm в QSP.

3.4. Как сделать ввод имени игроком?

3.5. Как увеличить число правильных ответов, которые может ввести игрок? | Как сделать варианты для ответа через $input?

Источники и дополнительные материалы

4. Вопросы о меню

4.1. Как сделать меню предмета?

4.2. Как сделать разные меню для двух и более предметов?

4.3. Как сделать меню в ссылках?

4.4. Как передавать локациям-пунктам меню аргументы?

4.5. Как делать контекстное (динамическое) меню?

4.6. Как вставить разделитель в меню?

4.7. Как вставить картинки в меню?

Источники и дополнительные материалы

5. Вопросы по $ONNEWLOC

5.1. Как сделать так, чтобы не писать один и тот же код в каждой локации?

5.2. Как сделать кнопку "Назад", работающую на каждой локации?

5.3. Почему в args на локации-обработчике перехода на новую локацию уже есть данные?

Источники и дополнительные материалы

6. Вопросы по звуковым файлам в QSP

6.1. Как вставить музыку или звук в игру?

6.2. Как запустить две звуковые дорожки?

6.3. Как при переходе на новую локацию прервать одну мелодию и запустить другую?

6.4. Как перезапустить звуковую дорожку?

6.5. Как приглушить музыку?

6.6. Как зациклить мелодию?

Источники и дополнительные материалы

7. Вопросы о гиперссылках

7.1. Как делать гиперссылки, по нажатию на которые выполняется код? | Как делать кликабельный текст? | Как сделать, чтобы по нажатию на текст что-то происходило?

7.2. Как менять цвет гиперссылки?

7.3. Как помещать в гиперссылки сложный код?

7.4. Как сделать гиперссылки без подчёркивания?

Источники и дополнительные материалы

8. Есть ли команда...

8.1. Какой командой можно очистить окно дополнительного описания?

8.2. Существует ли команда для того, чтобы получить название текущей локации?

8.3. Какой командой можно вывести текст в окно дополнительного описания?

8.4. Есть ли команда, которая делает выход из игры?

Источники и дополнительные материалы

9. Вопросы о изображениях

9.1. Как вставить картинку в игру?

9.2. Можно ли вставить в игру gif-файл?

9.3. Как вставить картинку в действие?

9.4. Как поставить картинку фоном?

9.5. Как выводить изображения послойно? Накладывать друг на друга?

9.6. Как сделать кликабельное изображение? | Как сделать так, чтобы при щелчке по изображению выполнялись какие-то действия?

9.7. Как сделать сменяемое изображение на локации?

9.8. Как сделать вывод рандомного изображения?

Источники и дополнительные материалы

10. Интерфейс, дизайн, украшения

10.1. Для чего нужен оператор REFINT, и как он работает?

10.2. Как изменить цвет фона в игре?

10.3. Как изменить формат части текста? Размер, цвет, наклон и т.д.?

10.4. Как сделать красивый фон в классическом плеере?

10.5. Хочу, чтоб в игре окна располагались определённым образом. Как это сделать?

10.6. Можно ли задавать размер окон из кода игры? Чтобы в одной локации были одни настройки, в другой — другие.

10.7. Настроил расположение окна предпросмотра, но когда выключаю его, другие окна смещаются, как это исправить?

10.8. Как изменить цвет подсветки действий?

10.9. Как изменить цвет фона для отдельного окна?

10.10. Как сделать плавное появление текста? | Как сделать плавное изменение цвета фона? | Как сделать плавное изменение цвета текста?

10.11. Как использовать в игре собственный шрифт?

10.12. С предметов можно снимать выделение, а можно ли снять выделение с действия?

Источники и дополнительные материалы

11. Вопросы об условиях

11.1. При проверке условия записано просто число, без операции сравнения, но QSP не выдаёт ошибку. Почему?

11.2. Как сделать так, чтобы действие появлялось только при определённом условии?

11.3. Видел в одной из игр, как после нажатия на действие, оно становится неактивным. Как это сделать?

11.4. Как добавить текст, который будет выводиться только при выполнении определённого условия?

11.5. Как сделать, чтобы в диалоговом окне текст набирался в зависимости от условий? Чтобы при срабатывании одного или обоих условий текст в любом случае выводился? Логическое ИЛИ (OR).

11.6. Как упростить условие с логическим И (AND)?

11.7. Как упростить взаимоисключающие условия? Логическое XOR.

Источники и дополнительные материалы

12. Вопросы о DYNAMIC

12.1. Зачем нужен оператор dynamic?

12.2. Можно ли сделать переменную с рандомным (случайным) названием?

12.3. Создаю действия с помощью цикла, но они работают неправильно. Что делать?

12.4. Почему не работает dynamic?

Источники и дополнительные материалы

13. Не работает...

13.1. Рисую таблицу и хочу зафиксировать высоту, но атрибут height не работает.

13.2. Пытаюсь использовать разные HTML-теги в игре, но они не работают — просто не выводятся. Почему?

13.3. Не работает IIF!

13.4. Пытаюсь сделать кликабельную картинку с помощью тегов MAP и AREA, но ничего не получается. | Не выводится картинка, не работает область клика, область клика смещена.

13.5. Не работает *pl в действии с goto.

13.6. В AeroQSP не работает атрибут.

13.7. Не работает гиперссылка в AeroQSP.

13.8. Не работает оператор JUMP — не может найти метку.

13.9. Не работает многострочный код. Как исправить?

13.10. Не работает многострочный код. Как исправить?

13.11. Сколько END`ов нужно добавить?

13.12. Не работает условие. Как исправить? (if skrom>10 and <15)

13.13. Не работают десятичные дроби, дробные числа, числа с запятыми!

Источники и дополнительные материалы

14. Вопросы о предметах

14.1. Как добавить предмет в окно предметов?

14.2. Как удалить предмет из окна предметов?

14.3. Как удалить все предметы?

14.4. Как добавить предмет в определённую позицию в окне предметов?

14.5. Как заменить один предмет на другой?

14.6. Как делать динамические/считаемые предметы? | Как делать стакающиеся предметы? | Как делать предметы рядом с названиями которых выводится их количество?

14.7. Как добавить предмет с картинкой но без названия?

14.8. Как сделать, чтоб при щелчке по предмету выполнялся какой-либо код?

14.9. Как снять выделение предмета? | Как сделать, чтобы выбранный предмет можно было кликнуть ещё раз?

14.10. Как сделать два списка предметов? Например для игры за разных персонажей.

14.11. Как сделать, чтобы плеер выполнял определённый код при добавлении любого предмета?

14.12. Как сделать два разных предмета с одинаковыми названиями?

14.13. Как сделать многоуровневый рюкзак? | Как сделать предметы в предметах?

14.14. Можно ли выводить предметы не в окне предметов?

Источники и дополнительные материалы

15. Вопросы о строке ввода

15.1. Зачем вообще нужна строка ввода (поле ввода)?

15.2. Как задействовать строку ввода в игре?

Источники и дополнительные материалы

16. Вопросы по вёрстке

16.1. Можно ли писать текст поверх вставленной картинки (не бэкграунда)?

16.2. Возможно ли сделать плавный переход между локациями?

16.3. Как расположить картинку справа, а текст слева?

16.4. Как ограничить размер выводимого изображения?

16.5. Как сделать рамку окна основного описания? | Как сделать, чтобы картинки шли по контуру основного окна?

16.6. Как сделать вывод предметов магазина не длинным списком, а в виде таблицы?

16.7. Можно ли зеркально отразить картинку методами плеера? | Можно ли задать максимальную или минимальную ширину элементу? | Можно ли вычислить доступное место в основном окне?

16.8. Вывожу в окно табличку, а потом текст, но между текстом и табличкой возникают пустые строки. Что это и как этого избежать?

16.9. Можно как нибудь вывести текст в два столба в классике? К примеру характеристики персонажей.

16.10. Как работать с тегами MAP и AREA? Как разметить картинку на кликабельные зоны?

Источники и дополнительные материалы

17. Вопросы о сохранениях

17.1. Как запретить игроку самостоятельно сохранять игру?

17.2. Во время теста игры делал сохранения, затем внёс в игру несколько правок, но сохранения перестали загружаться. Почему так происходит, и что теперь делать?

17.3. Как сделать чекпойнты в игре?

17.4. Как написать действие, которое при каждом клике сохраняло бы игру в файлы "1.sav" и "2.sav" поочерёдно?

Источники и дополнительные материалы

18. Вопросы о файлах и модулях

18.1. Чем отличаются команды addqst и openqst?

18.2. Как сделать лаунчер?

18.3. Мне нужно узнать, есть ли в папке файл (картинка, музыка и т.д.). Как это сделать?

18.4. Перенёс файл игры из одной папки в другую. В Quest Generator пропали все папки. Почему так происходит, и как этого избежать?

18.5. В папке с игрой стали появляться файлы с расширением .tmp. Что это за файлы, нужны они, и как избавиться от их появления?

Источники и дополнительные материалы

19. Изыски

19.1. Как использовать ASCII-графику в QSP?

19.2. Как вставить в игру видео?

19.3. Как сделать так, чтобы текст появлялся на экране постепенно? По буквам?

19.4. Как защитить игру от чита?

19.5. Как задействовать клавиатуру в игре?

19.6. Как пропустить прохождение нескольких глав, чтобы протестировать вновь написанную главу и только её?

19.7. Как из под плеера выполнить произвольную строку кода?

19.8. Как узнать, на каком устройстве запущена игра? Телефон, компьютер, планшет?

19.9. Как обновлять переменные на экране?

19.10. Как сделать, чтобы текст выводился снизу вверх?

Источники и дополнительные материалы

20. Конкретные задачи

20.1. Как сделать возврат на предыдущую локацию?

20.2. Как проверить число на чётность?

20.3. Как сделать шанс на выпадение определённой вещи? Например 25 процентный шанс на то, что в сундуке окажется золотая чаша?

20.4. Как сделать, чтобы текст выводился не внизу окна основного описания, а сверху?

20.5. Как можно удалить часть текста из описания?

20.6. Как вывести на экран HTML-разметку, не отключая режим распознавания HTML? То есть при usehtml=1.

20.7. Есть несколько переменных с разными значениями. Как получить имя переменной, в которой находится наибольшее значение?

20.8. Как в QSP сравнить два массива?

20.9. Как сделать вытягивание случайных карт из колоды? Карты вытягиваются несколько раз, но они не должны повторяться.

20.10. Как отсортировать данные? Например, список персонажей по алфавиту, или набор чисел от меньшего к большему.

20.11. Как сделать проценты?

20.12. Как решить задачу по поиску случайного набора слагаемых?

20.13. Как разредить текст пробелами?

20.14. Как сделать записную книжку в игре?

20.15. Как сделать так, чтобы на локацию можно было зайти только один раз?

20.16. Как заставить действия выводиться в нужном мне порядке?

20.17. Как сделать в игре книгу? Чтобы её можно было взять и потом прочитать?

20.18. Как сделать склад, сундук, тайник, место, в котором можно выкладывать и хранить предметы?

20.19. Как сделать выпадение случайного действия на локации?

20.20. Как сделать перемещение на случайную локацию?

20.21. Как сделать случайный предмет?

20.22. Как узнать, какие переменные есть в игре? Может для этого есть специальная команда?

20.23. Как убрать преформатирование из HTML-разметки?

Источники и дополнительные материалы

21. Вопросы по Quest Generator (v.4.0.0.Beta)

21.1. Мне часто приходится вставлять одинаковые или почти одинаковые кусочки кода. Как автоматизировать этот процесс?

21.2. Делаю преформатирование пробелами, чтобы появлялась вертикальная полоска, так нагляднее. Нет ли какой-то комбинации клавиш, чтобы не тыкать пробел по пять раз?

21.3. Как свернуть кусочек кода, написанный под комментарием? В идеале, чтоб остался один только комментарий.

Источники и дополнительные материалы

22. Вопросы о Quest Navigator (v.0.0.28)

22.1. Пишу несколько игр в Quest Navigator. Как сделать, чтобы у каждой игры было собственное оформление?

22.2. Как подключить свой шрифт к игре?

22.3. Пишу <strong>bcolor=rgb(255,200,200)</strong>, но это не меняет цвет фона игры. Как изменить цвет фона из кода QSP?

22.4. Хочу прописать игре собственный вид курсора, как это сделать?

22.5. Скопировал шаблон оформления в папку со своей игрой, но что с ним теперь делать? Не пойму, что за что отвечает.

22.6. Как узнать, на каком плеере запущена игра, на классическом QSP, или на Quest Navigator?

22.7. Как вставить видео в игру на Навигаторе?

22.8. Как делать standalone-сборку на Навигаторе? | Независимая сборка на Quest Navigator

22.9. Где в Quest Navigator править размер окна с игрой? Например мне надо, чтобы игра изначально открывалась в разрешении 1280х720.

22.10. Как выполнить JavaScript прямо из кода QSP?

22.11. Инструкция посмене оформления из кода QSP?

Источники и дополнительные материалы

23. Ограничения

23.1. Видел в справке ограничение на 100 подключаемых файлов? Это что, я не смогу использовать более ста файлов картинок и музыки?

23.2. Хочу разместить на локации около 100 действий. Это вообще возможно?

23.3. Генерирую переменные с помощью оператора dynamic, и вдруг выходит ошибка 123. Что это, и как с этим бороться?

Источники и дополнительные материалы

24. Вопросы по работе с плеерами

24.1. Как сделать так, чтобы AeroQSP запускался прямо из Quest Generator?

24.2. Как сделать StandAlone-сборку на классическом плеере? | Можно ли сделать игру так, чтобы играть без плеера? | Как сделать пакетный файл запуска, чтобы игрок тыкал иконку start и сразу начинал играть?

Источники и дополнительные материалы

Зарезервированные слова, системные переменные, спецсимволы

Операции

Операторы

Функции

Системные переменные

Иные синтаксемы

Алфавитный указатель ключевых слов, спецсимволов, синтаксем

Источники и дополнительные материалы